<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .container {
            width: 600px;
            height: 600px;
            border: 10px solid pink;
            border-radius: 10px;
            margin: 0 auto;
            position: relative;
        }

        .container div {
            width: 30%;
            height: 30%;
            background: gray;
            position: absolute;
            font-size: 50px;
            color: white;
            display: flex;
            justify-content: center;
            align-items: center;
            border-radius: 5px;
        }
    </style>
</head>

<body>
    <div class="container">
        <div style="left:2%;top:2%">1</div>
        <div style="left:35%;top:2%">2</div>
        <div style="left:68%;top:2%">3</div>
        <div style="left:2%;top:35%">4</div>
        <div style="left:35%;top:35%">5</div>
        <div style="left:68%;top:35%">6</div>
        <div style="left:2%;top:68%">7</div>
        <div style="left:35%;top:68%">8</div>
        <div style="left:68%;top:68%">9</div>
    </div>
    <script>
        var arr = ['red', 'blue', 'yellow', 'orange', 'black', 'pink', 'gray', 'purple', 'green'];
        let divs = document.querySelectorAll(".container div");
        var containerEle = document.querySelector(".container");
        divs.forEach(function (div, key) {
            div.style.backgroundColor = arr[key];
        })

        divs.forEach(function (div) {
            var obj = {};
            div.onmousedown = function (e) {
                this.style.transition = "none";
                var x = e.clientX - this.offsetLeft;
                var y = e.clientY - this.offsetTop;
                obj.x = this.offsetLeft;
                obj.y = this.offsetTop;
                this.style.zIndex = 10;
                div.onmousemove = function (e) {
                    var xx = e.clientX;
                    var yy = e.clientY;
                    this.style.left = xx - x + "px";
                    this.style.top = yy - y + "px";
                }
                div.onmouseup = function () {
                    div.onmousemove = "";
                    this.style.zIndex = 1;
                    this.style.transition = "all 1s";
                    // 拖动完毕 然div在回去
                    this.style.left = obj.x + "px";
                    this.style.top = obj.y + "px";
                }
            }
        })





    </script>
</body>

</html>